package cn.controller;

import cn.pojo.Customer;
import jakarta.validation.Valid;
import org.springframework.validation.Errors;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("check")
public class CheckController {

    /**
     * 开启实体校验的两个注解，两者区别参考链接
     *
     * @Valid和@Validated注解的使用 https://blog.csdn.net/qq_46540738/article/details/121605787
     */
    @RequestMapping("add/customer")
    public String addCustomer(@Valid Customer customer, Errors errors) {
        System.out.println(customer);
        // 判断是否存在错误
        if (errors.hasErrors()) {
            // 若是有错误可以收集错误信息,返回会前台
            List<FieldError> errorList = errors.getFieldErrors();
            errorList.forEach(fieldError -> System.out.println("field: " + fieldError.getField() + ", err: " + fieldError.getDefaultMessage()));
            return "check error";
        } else {
            // 没有错误进行业务处理,如添加客户等
            System.out.println("信息验证通过,正在添加客户...");
            return "add customer success!";
        }
    }
    /**
     * 不再编写前端代码,使用postman测试,注意请求方式为post
     * localhost:8080/check/add/customer
     *
     *
     *
     */
}
